#ifndef FACE_BEAUTY_MODULE_H
#define FACE_BEAUTY_MODULE_H


#include "face_beauty_interface.h"
#include "whitening/beautycore.h"

namespace facebeauty
{

class FaceBeautyModule: public FaceBeautyInterface
{
public:
    FaceBeautyModule();
    virtual ~FaceBeautyModule();

    virtual int InitModule(int feature, std::size_t width, std::size_t height, FACE_BEAUTY_COLOR_SPACE color);
    virtual void Reset();
    virtual int SetFeatureQuality(int feature, int quality);
    virtual int ProccessFrame(FaceBeautyFrame* in_frame, FaceBeautyFrame* out_frame = nullptr);

private:
    std::shared_ptr<CBeautyCore> whitening_module_;
    int feature_;
    bool setuped_;
};

};

#endif
